home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / caratulasdecine (ES).ifs < prev    next >
Encoding:
Text File  |  2004-03-23  |  6.2 KB  |  191 lines

  1. // GETINFO SCRIPTING
  2. // www.caratulasdecine.com - Large picture
  3.  
  4. (***************************************************
  5.  *  Author: japg2000 (japg2000@terra.es)               *
  6.  *  Script for the importation of pictures from    *
  7.  *  caratulasdecine                                *
  8.  *                                                 *
  9.  *  For use with Ant Movie Catalog 3.4.0           *
  10.  *  www.ant.be.tf/moviecatalog ╖╖╖ www.buypin.com  *
  11.  *                                                 *
  12.  *  The source code of the script can be used in   *
  13.  *  another program only if full credits to        *
  14.  *  script author and a link to Ant Movie Catalog  *
  15.  *  website are given in the About box or in       *
  16.  *  the documentation of the program               *
  17.  ***************************************************)
  18.  
  19. program CaratulasdecineImport;
  20.  
  21. var
  22.   CaratulasdecinePage, MoviePage: TStringList;
  23.   PageOfLetter: Array of string;
  24.   Dir, Line, LineTmp, Title: string;
  25.   C: Char;
  26.   Encontrado, Salir, BeginPos, EndPos, Index, LineNr, LineMov: Integer;
  27.   debug: Integer;
  28.  
  29. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  30. var
  31.   i: Integer;
  32. begin
  33.   result := -1;
  34.   if StartAt < 0 then
  35.     StartAt := 0;
  36.   for i := StartAt to List.Count-1 do
  37.     if Pos(Pattern, List.GetString(i)) <> 0 then
  38.     begin
  39.       result := i;
  40.       Break;
  41.     end;
  42. end;
  43.  
  44. function EliminaInicio(S: string; CR: string): string;
  45. begin
  46.   result := S;
  47.   while Pos(CR, result) = 1 do
  48.   begin
  49.     Delete(result, 1, Length(CR));
  50.   end;
  51. end;
  52.  
  53. function CadenaEntre(var S: string; StartTag: string; EndTag: string): string;
  54. var
  55.   InicioPos: Integer;
  56. begin
  57.   InicioPos := Pos(StartTag, S);
  58.   Delete(S, 1, InicioPos + Length(StartTag) - 1);
  59.   InicioPos := Pos(EndTag, S);
  60.   result := copy(S, 1, InicioPos - 1);
  61.   Delete(S, 1, InicioPos + 1);
  62. end;
  63.  
  64. function PreparaTitulo(T: string): string;
  65. var
  66.   i: Integer;
  67. begin
  68.   result := AnsiLowerCase(T);
  69.   HTMLDecode(result);
  70.   result := StringReplace(result, chr(146), '┤');
  71.   result := StringReplace(result, chr(39), '┤');
  72.   result := StringReplace(result, '', '┤');
  73.   result := StringReplace(result, '┤', '┤');
  74.   result := StringReplace(result, '`', '┤');
  75.   result := StringReplace(result, '┐', '');
  76.   result := StringReplace(result, '?', '');
  77.   result := StringReplace(result, 'í', '');
  78.   result := StringReplace(result, '!', '');
  79.   result := StringReplace(result, 'ß', 'a');
  80.   result := StringReplace(result, 'Θ', 'e');
  81.   result := StringReplace(result, 'φ', 'i');
  82.   result := StringReplace(result, '≤', 'o');
  83.   result := StringReplace(result, '·', 'u');
  84. end;
  85.  
  86. begin
  87.   Setarraylength(PageOfLetter,36);
  88.   PageOfLetter[0]:='0_9';  PageOfLetter[1]:='0_9'; 
  89.   PageOfLetter[2]:='0_9';  PageOfLetter[3]:='0_9'; 
  90.   PageOfLetter[4]:='0_9';  PageOfLetter[5]:='0_9'; 
  91.   PageOfLetter[6]:='0_9';  PageOfLetter[7]:='0_9'; 
  92.   PageOfLetter[8]:='0_9';  PageOfLetter[9]:='0_9';
  93.   PageOfLetter[10]:='a';   PageOfLetter[11]:='b';   
  94.   PageOfLetter[12]:='c';   PageOfLetter[13]:='d';
  95.   PageOfLetter[14]:='e';   PageOfLetter[15]:='f_h';
  96.   PageOfLetter[16]:='f_h'; PageOfLetter[17]:='f_h';
  97.   PageOfLetter[18]:='i_k'; PageOfLetter[19]:='i_k';
  98.   PageOfLetter[20]:='i_k'; PageOfLetter[21]:='l';
  99.   PageOfLetter[22]:='m_n'; PageOfLetter[23]:='m_n';
  100.   PageOfLetter[24]:='o_q'; PageOfLetter[25]:='o_q';
  101.   PageOfLetter[26]:='o_q'; PageOfLetter[27]:='r_s';
  102.   PageOfLetter[28]:='r_s'; PageOfLetter[29]:='t_z';
  103.   PageOfLetter[30]:='t_z'; PageOfLetter[31]:='t_z';
  104.   PageOfLetter[32]:='t_z'; PageOfLetter[33]:='t_z';
  105.   PageOfLetter[34]:='t_z'; PageOfLetter[35]:='t_z';
  106.  
  107.   Title := PreparaTitulo(GetField(fieldTranslatedTitle));
  108.   C := copy(Title, 1, 1);
  109.  
  110.   if (C >= '0') and (C <= '9') then
  111.   begin
  112.      Index := Ord(C) - Ord('0');
  113.   end
  114.   else
  115.   begin
  116.      Index := 10 + Ord(C) - Ord('a');
  117.   end;
  118.  
  119.   CaratulasdecinePage := TStringList.Create;
  120.   CaratulasdecinePage.Text := GetPage('http://www.caratulasdecine.com/' + PageOfLetter[Index] + '.htm');
  121.  
  122.   //CaratulasdecinePage.SaveToFile('z:\caratulas.txt');
  123.   //CaratulasdecinePage.LoadFromFile('z:\caratulas.txt');
  124.  
  125.   LineNr := FindLine('</big></big></big></big></big></big>', CaratulasdecinePage, 0);
  126.   LineNr := LineNr + 1;
  127.   Line := CaratulasdecinePage.GetString(LineNr);
  128.   Line := EliminaInicio(Line, ' ');
  129.   Salir := 0;
  130.   Encontrado := 0;
  131.   debug := 0;
  132.   repeat
  133.     while (Pos('<br>', Line) = 0) and (Pos('</td>', Line) = 0) and (LineNr < 1000) do
  134.     begin
  135.       if copy(Line, Length(Line), 1) <> ' ' then
  136.         Line := Line + ' ';
  137.       LineNr := LineNr + 1;
  138.       LineTmp := CaratulasdecinePage.GetString(LineNr);
  139.       LineTmp := EliminaInicio(LineTmp, ' ');
  140.       Line := Line + LineTmp;
  141.     end;
  142.  
  143.     if Pos('</td>', Line) > 0 then
  144.       Salir := 1;
  145.  
  146.     if Pos('<a class="A" href="', Line) > 0 then
  147.     begin
  148.       Dir := 'http://www.caratulasdecine.com/' + CadenaEntre(Line, '<a class="A" href="', '">');
  149.     end
  150.     else
  151.     begin
  152.       Dir := Line;
  153.       Dir := CadenaEntre(Dir, '<a href="', 'class="A">');
  154.       while Pos('<a href="', Dir) > 0 do
  155.         Dir := CadenaEntre(Dir, '<a href="', 'class="A">');
  156.     end;
  157.     //showmessage(Dir);
  158.  
  159.     Line := CadenaEntre(Line, '', '<');
  160.     Line := PreparaTitulo(Line);
  161.     // ShowMessage(Title + ' ┐=? ' + Line + ' -> ' + Dir);
  162.     // if Pos('***',Line) > 0 then
  163.     //  debug:=1;
  164.  
  165.     if Pos(Title, Line) > 0 then
  166.     begin
  167.       MoviePage := TStringList.Create;
  168.       MoviePage.Text := GetPage(Dir);
  169.       //MoviePage.SaveToFile('z:\caratulasmovie.txt');
  170.       LineMov := FindLine('<p align="center"><img src="', MoviePage, 0);
  171.       Line := MoviePage.GetString(LineMov);
  172.       Line := CadenaEntre(Line, '<p align="center"><img src="', '" ');
  173.       Line := EliminaInicio(Line, '../');
  174.       GetPicture('http://www.caratulasdecine.com/' + Line, True);
  175.       Salir := 1;
  176.       Encontrado := 1;
  177.     end;
  178.  
  179.     LineNr := LineNr + 1;
  180.     if LineNr > 1000 then
  181.       Salir := 1;
  182.      
  183.     Line := CaratulasdecinePage.GetString(LineNr);
  184.     Line := EliminaInicio(Line, ' ');
  185.   until Salir = 1;
  186.  
  187.   if (Encontrado <> 1) then
  188.      ShowMessage('Titulo ' + Title + ' no encontrado en ' + 'http://www.caratulasdecine.com/' + PageOfLetter[Index] + '.htm');
  189.  
  190. end.
  191.